class excep_error_sintaxis(Exception):
  pass

class excep_error_noEOF(Exception):
  pass

class excep_error_abandonar(Exception):
  pass

def lanza_abandonar():
  raise excep_error_abandonar

Funciones= []
VariablesGlobales= []
Cadenas= []
funcionError= "#ferror"

_debug= 0

_primeros= {"<AccesoVariable>":["id"],
              "<Comparado>":["id","llama","num_ent_ent","pa","cad"],
              "<Compuesta>":["inicio"],
              "<Declaracion>":["id"],
              "<Expresion>":["id","llama","num_ent","pa","cad"],
              "<Funcion>":["funcion"],
              "<Globales>":["globales"],
              "<Llamada>":["llama"],
              "<Perfil>":["pa"],
              "<Producto>":["id","llama","num_ent","pa","cad"],
              "<Programa>":["globales","funcion","inicio"],
              "<Sentencia>":["devuelve","id","si","nl","escribe","inicio"],
              "<Termino>":["id","llama","num_ent","pa","cad"],
              "<Tipo>":["vector","cadena","entero"]}


_siguientes= {"<AccesoVariable>":["cc","opcom","opad","opmul","asig","pc","coma","pyc","entonces"],
                "<Comparado>":["cc","opcom","pc","coma","pyc","entonces"],
                "<Compuesta>":["fin","devuelve","id","si","nl","escribe","secuencia","_EOF","funcion","si_no"],
                "<Declaracion>":["fin","pyc","pc"],
                "<Expresion>":["cc","pc","coma","pyc","entonces"],
                "<Funcion>":["inicio","funcion"],
                "<Globales>":["inicio","funcion"],
                "<Llamada>":["cc","opcom","opad","opmul","pc","coma","pyc","entonces"],
                "<Perfil>":["inicio","locales"],
                "<Producto>":["cc","opcom","opad","pc","coma","pyc","entonces"],
                "<Programa>":["_EOF"],
                "<Sentencia>":["fin","devuelve","id","si","nl","escribe","inicio","si_no"],
                "<Termino>":["cc","opcom","opad","opmul","pc","coma","pyc","entonces"],
                "<Tipo>":["inicio","locales","fin","pyc","pc"]}
